package com.smart.community.region.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * 房户更新数据传输对象
 * 只包含可编辑的字段，用于房户信息更新
 * 
 * @author Wu.Liang
 * @since 2024-12-21
 */
@Data
@Schema(description = "房户更新信息DTO")
public class HouseholdUpdateDTO {

    @Schema(description = "房户ID", required = true)
    @NotNull(message = "房户ID不能为空")
    private Long id;

    @Schema(description = "房间号", required = true)
    @NotBlank(message = "房间号不能为空")
    @Size(max = 20, message = "房间号长度不能超过20个字符")
    private String roomNumber;

    @Schema(description = "房间类型：1-一室，2-两室，3-三室，4-四室及以上")
    private Integer roomType;

    @Schema(description = "面积（平方米）")
    private BigDecimal area;

    @Schema(description = "使用面积（平方米）")
    private BigDecimal usableArea;

    @Schema(description = "朝向")
    private String orientation;

    @Schema(description = "产权类型：1-自有，2-租赁，3-其他")
    private Integer propertyType;

    @Schema(description = "房产证号")
    private String propertyCertificate;

    @Schema(description = "购买日期")
    private String purchaseDate;

    @Schema(description = "物业费单价(元/平方米)")
    private BigDecimal propertyFeeRate;

    @Schema(description = "状态：0-空置，1-已入住，2-装修中，3-出租")
    private Integer status;

    @Schema(description = "排序字段")
    private Integer sortOrder;

    @Schema(description = "房户描述")
    private String description;
}
